package com.cykj.commons.enums;

/**
 * gex2设备 枚举
 *
 * @author Afeng
 */
public enum Gex2Enum {
    /**
     * 左开闸
     */
    LEFT_OPEN("LEFT_OPEN", "7E800001000080AA00010100DE627E", "左开闸"),
    /**
     * 右开闸
     */
    RIGHT_OPEN("RIGHT_OPEN", "7E800001000080AA000102008B317E", "右开闸"),
    /**
     * 左常开开闸
     */
    LEFT_NORMALLY_OPEN_OPEN_GATE("LEFT_NORMALLY_OPEN_OPEN_GATE", "7E800001000080AA00010101CE437E", "左常开开闸"),
    /**
     * 左常开关闸
     */
    LEFT_NORMALLY_OPEN_CLOSE_GATE("LEFT_NORMALLY_OPEN_CLOSE_GATE", "7E800001000081AA0001018AAB7E", "左常开关闸"),
    /**
     * 右常开开闸
     */
    RIGHT_NORMALLY_OPEN_OPEN_GATE("RIGHT_NORMALLY_OPEN_OPEN_GATE", "7E800001000080AA000102019B107E", "右常开开闸"),
    /**
     * 右常开关闸
     */
    RIGHT_NORMALLY_OPEN_CLOSE_GATE("RIGHT_NORMALLY_OPEN_CLOSE_GATE", "7E800001000081AA000102BAC87E", "右常开关闸"),
    /**
     * 右红外触发开闸
     */
    RIGHT_INFRARED_TRIGGER_SWITCH_ON("RIGHT_INFRARED_TRIGGER_SWITCH_ON", "7E800001000080AA0001010395fC7E", "右红外触发开闸"),
    /**
     * 关闭右红外开闸
     */
    CLOSE_THE_RIGHT_INFRARED_SWITCH("CLOSE_THE_RIGHT_INFRARED_SWITCH", "7E800001000080AA0001010495fC7E", "关闭右红外开闸"),
    /**
     * 左红外触发开闸
     */
    LEFT_INFRARED_TRIGGER_SWITCH_ON("LEFT_INFRARED_TRIGGER_SWITCH_ON", "7E800001000080AA0001020395fC7E", "左红外触发开闸"),
    /**
     * 关闭左红外开闸
     */
    CLOSE_THE_LEFT_INFRARED_SWITCH("CLOSE_THE_LEFT_INFRARED_SWITCH", "7E800001000080AA0001020495FC7E", "关闭左红外开闸"),
    /**
     * 左通行通过
     */
    LEFT_PASSAGE("LEFT_PASSAGE", "7E80000100006100000194387E", "左通行通过"),
    /**
     * 右通行通过
     */
    RIGHT_PASSAGE("RIGHT_PASSAGE", "7E80000100006200000148A37E", "右通行通过"),
    /**
     * 左通行超时
     */
    LEFT_PASSAGE_TIMEOUT("LEFT_PASSAGE_TIMEOUT", "7E800001000063000001D5FC7E", "左通行超时"),
    /**
     * 右通行超时
     */
    RIGHT_PASSAGE_TIMEOUT("RIGHT_PASSAGE_TIMEOUT", "7E80000100006400000184D17E", "右通行超时"),
    /**
     * 使能电机
     */
    ENABLE_MOTOR("ENABLE_MOTOR", "010600040000C80B", "使能电机"),
    /**
     * 失能电机
     */
    DISABLE_MOTOR("DISABLE_MOTOR", "01060004000109CB", "失能电机"),
    /**
     * 刹车开
     */
    BRAKE_ON("BRAKE_ON", "010600050001580B", "刹车开"),
    /**
     * 刹车关
     */
    BRAKE_OFF("BRAKE_OFF", "01060005000099CB", "刹车关"),
    /**
     * 查询开门状态
     */
    OPENING_STATUS("OPENING_STATUS", "010300120001240F", "查询开门状态"),
    /**
     * 查询红外状态
     */
    INFRARED_STATUS("INFRARED_STATUS", "5501FD000001AA55", "查询红外状态"),
    /**
     * 复位指令
     */
    RESET_STATUS("RESET_STATUS", "5501FE000000AA55", "复位指令"),
    /**
     * X1X2是校验？
     */
    TIMEOUT_LEFT_PASSAGE("TIMEOUT_LEFT_PASSAGE", "7E800001000073000001FCX1X27E", "人在通道内左通行超时"),
    /**
     * 人在通道内右通行超时
     */
    TIMEOUT_RIGHT_PASSAGE("TIMEOUT_RIGHT_PASSAGE", "7E800001000074000001X1X27E", "人在通道内右通行超时"),
    /**
     * 待机非法闯入反馈
     */
    STANDBY_ILLEGAL_INTRUSION("STANDBY_ILLEGAL_INTRUSION", "7E800001000095000001X1X27E", "待机非法闯入反馈"),
    /**
     * 左开闸逆行闯入反馈
     */
    LEFT_GATE_OPENING_RETROGRADE("LEFT_GATE_OPENING_RETROGRADE", "7E80000100008300000184X1X27E", "左开闸逆行闯入反馈"),
    /**
     * 右开闸逆行闯入反馈
     */
    RIGHT_GATE_OPENING_RETROGRADE("RIGHT_GATE_OPENING_RETROGRADE", "7E800001000084000001X17E", "右开闸逆行闯入反馈"),
    /**
     * 左开闸尾随报警反馈
     */
    LEFT_OPENING_TRAILING("LEFT_OPENING_TRAILING", "7E800001000093000001X1X27E", "左开闸尾随报警反馈"),
    /**
     * 右开闸尾随报警反馈
     */
    RIGHT_OPENING_TRAILING("RIGHT_OPENING_TRAILING", "7E800001000094000001X1X27E", "右开闸尾随报警反馈"),
    /**
     * xx 代表红外状态 第一对红外有信号则为 01，第6对有信号则为20,xx的低6位代表6给红外口的状态，有信号对应位则为1，无信号则为0
     */
    INFRARED_UPLOAD("INFRARED_UPLOAD", "5501FC00XX01AA55", "红外信号有变化主动上传"),
    /**
     * XX XX 代表电机的状态  02 00代表主电机错误，04 00代表从电机错误，01 00代表自检成功   00 02 代表主电机未插   00 04 代表从电机未插   00           06 代表主从电机都没插
     */
    MOTOR_UPLOAD("MOTOR_UPLOAD", "5501FBXXXX01AA55", "开机自检以后主动上传"),
    /**
     * 出入口开启时长
     */
    READ_L1("READ_L1", "550101000001AA55", "出入口开启时长"),
    /**
     * 控制模式
     */
    READ_L2("READ_L2", "550102000001AA55", "控制模式"),
    /**
     * 出向延时时间
     */
    READ_L3("READ_L3", "550103000001AA55", "出向延时时间"),
    /**
     * 左边通行语音
     */
    READ_L4("READ_L4", "550104000001AA55", "左边通行语音"),
    /**
     * 右边通行语音
     */
    READ_L5("READ_L5", "550105000001AA55", "右边通行语音"),
    /**
     * 红外叠加时间
     */
    READ_L6("READ_L6", "550106000001AA55", "红外叠加时间（单位秒）"),
    /**
     * 断电开闸方向
     */
    READ_L7("READ_L7", "550107000001AA55", "断电开闸方向"),
    /**
     * 报警语音
     */
    READ_L8("READ_L8", "550108000001AA55", "报警语音"),
    /**
     * 出入口记忆功能配置
     */
    READ_L9("READ_L9", "550109000001AA55", "出入口记忆功能配置"),
    /**
     * 红外防夹动作
     */
    READ_L10("READ_L10", "55010A000001AA55", "红外防夹动作"),
    /**
     * 红外数量
     */
    READ_L11("READ_L11", "55010B000001AA55", "红外数量"),
    /**
     * 语音音量
     */
    READ_L12("READ_L12", "55010C000001AA55", "语音音量"),
    /**
     * 主电机品牌选择
     */
    READ_L15("READ_L15", "55010F000001AA55", "主电机品牌选择：主板出现E-1改成1"),
    /**
     * 主电机品牌选择
     */
    READ_L16("READ_L16", "550110000001AA55", "主电机品牌选择：主板出现E-:2改成1"),
    /**
     * 逆向关闸选择
     */
    READ_L17("READ_L17", "550111000001AA55", "逆向关闸选择"),
    /**
     * 双色灯三色灯控制选择
     */
    READ_L18("READ_L18", "550112000001AA55", "双色灯三色灯控制选择"),
    /**
     * 刷卡开闸设置？
     */
    READ_L19("READ_L19", "550113000001AA55", "0代表：通道内可以刷卡开闸     1代表：通道内不能刷卡开闸"),
    /**
     * 翼闸红外关闸
     */
    READ_L20("READ_L20", "550114000001AA55", "翼闸红外关闸选项 0代表:翼闸过了防夹以后关闸   1代表：翼闸过了最后一对红外关闸"),
    /**
     * 红外防尾随
     */
    READ_L21("READ_L21", "550115000001AA55", "红外防尾随是否开启 0：不开启  1：开启(人进入通道后，如果第一队入口红外又被遮挡则认为是尾随报警)"),
    /**
     * 尾随后是否关闸
     */
    READ_L22("READ_L22", "550116000001AA55", "尾随后是否关闸 0:尾随后只报警，不关闸 1：尾随后报警，接着关闸"),
    /**
     * 开关门速度设置
     */
    READ_D4("READ_D4", "550204000001AA55", "开关门速度设置"),
    /**
     * 闸机模式
     */
    READ_D5("READ_D5", "550205000001AA55", "闸机模式"),
    /**
     * 是否有离合器
     */
    READ_D6("READ_D6", "550206000001AA55", "是否有离合器"),
    /**
     * 反弹模式
     */
    READ_D7("READ_D7", "550207000001AA55", "反弹模式"),
    /**
     * 对抗力度
     */
    READ_D8("READ_D8", "550208000001AA55", "对抗力度"),
    /**
     * 复位时间
     */
    READ_D9("READ_D9", "550209000001AA55", "复位时间"),
    /**
     * 主关门缓冲力度
     */
    READ_D10("READ_D10", "55020A000001AA55", "主关门缓冲力度"),
    /**
     * 主机电机转速
     */
    READ_D11("READ_D11", "55020B000001AA55", "主机电机转速"),
    /**
     * 从关门缓冲力度
     */
    READ_D12("READ_D12", "55020C000001AA55", "从关门缓冲力度"),
    /**
     * 从机电机转速
     */
    READ_D13("READ_D13", "55020D000001AA55", "从机电机转速"),
    /**
     * 电源功率
     */
    READ_D14("READ_D14", "55020E000001AA55", "电源功率"),
    /**
     * 上电找零速度
     */
    READ_D15("READ_D15", "55020F000001AA55", "上电找零速度"),
    /**
     * 翼闸零位方向
     */
    READ_D16("READ_D16", "550210000001AA55", "翼闸零位方向"),
    /**
     * 物理防夹灵敏度
     */
    READ_D17("READ_D17", "550211000001AA55", "物理防夹灵敏度"),
    /**
     * 物理防夹电流时间
     */
    READ_D18("READ_D18", "550212000001AA55", "物理防夹电流时间"),
    /**
     *
     */
    READ_D19("READ_D19", "550213000001AA55", "加加速电流"),
    /**
     *
     */
    READ_D20("READ_D20", "550214000001AA55", "加加速电流时间"),
    /**
     *
     */
    READ_D21("READ_D21", "550215000001AA55", "离合吸合角度"),
    /**
     *
     */
    READ_D22("READ_D22", "550216000001AA55", "离合调节的占空比"),
    /**
     *
     */
    READ_D23("READ_D23", "550217000001AA55", "物理防夹反应时间"),
    /**
     *
     */
    READ_D24("READ_D24", "550218000001AA55", "堵转零敏度"),
    /**
     *
     */
    READ_D25("READ_D25", "550219000001AA55", "电流保护时长"),
    /**
     *
     */
    READ_D26("READ_D26", "55021A000001AA55", "从机对抗力度"),
    /**
     *
     */
    READ_D27("READ_D27", "55021B000001AA55", "减速行程"),
    /**
     *
     */
    CLOSED_IN_PLACE("CLOSED_IN_PLACE", "0103020000AA55", "表示关门到位"),
    /**
     *
     */
    OPENING_A_IN_PLACE("OPENING_A_IN_PLACE", "0103020001AA55", "表示开门A到位"),
    /**
     *
     */
    OPENING_B_IN_PLACE("OPENING_B_IN_PLACE", "0103020002AA55", "表示开门B到位"),
    /**
     *
     */
    OPENING_PROCESS_IN_A("OPENING_PROCESS_IN_A", "0103020003AA55", "表示开门A过程中"),
    /**
     *
     */
    OPENING_PROCESS_IN_B("OPENING_PROCESS_IN_B", "0103020004AA55", "表示开门B过程中"),
    /**
     *
     */
    CLOSING_PROCESS_IN_A("CLOSING_PROCESS_IN_A", "0103020005AA55", "表示关门A过程中"),
    /**
     *
     */
    CLOSING_PROCESS_IN_B("CLOSING_PROCESS_IN_B", "0103020006AA55", "表示关门B过程中"),
    /**
     *
     */
    INITIALIZATION_IS_IN_PROGRESS("INITIALIZATION_IS_IN_PROGRESS", "0103020007AA55", "表示初始化中"),
    /**
     *
     */
    SOMEONE_PUSHED_THE_DOOR("SOMEONE_PUSHED_THE_DOOR", "0103020008AA55", "表示有人推门"),
    /**
     *
     */
    MOTOR_IS_ZEROING("MOTOR_IS_ZEROING", "0103020009AA55", "表示电机正在找零位"),
    /**
     *
     */
    INFRARED_NOT_WORK("INFRARED_NOT_WORK", "0103020000AA55", "红外不起作用"),
    /**
     *
     */
    THROUGH_FIRST_POINT("THROUGH_FIRST_POINT", "0103020001AA55", "通过第一个点"),
    /**
     *
     */
    THROUGH_SECOND_POINT("THROUGH_SECOND_POINT", "0103020002AA55", "通过第二个点"),
    /**
     *
     */
    THROUGH_THIRD_POINT("THROUGH_THIRD_POINT", "0103020003AA55", "通过第三个点"),
    /**
     *
     */
    SOMEONE_IS_RETROGRADE("SOMEONE_IS_RETROGRADE", "0103020004AA55", "表示有人逆行"),
    /**
     *
     */
    SOMEONE_IS_FOLLOWING("SOMEONE_IS_FOLLOWING", "0103020005AA55", "表示有人尾随"),
    /**
     *
     */
    INFRARED_OVER_TIME("INFRARED_OVER_TIME", "0103020006AA55", "表示红外超时关门"),
    /**
     *
     */
    SOMEONE_BROKE_IN("SOMEONE_BROKE_IN", "0103020007AA55", "表示有人闯入"),
    /**
     *
     */
    THROUGH_NORMAL("THROUGH_NORMAL", "0103020008AA55", "表示人正常通过通道，处于待机状态"),
    /**
     *
     */
    SET_L1("SET_L1", "550101X1X200AA55", "出入口开启时长"),
    /**
     *
     */
    SET_L2("SET_L2", "550102X1X200AA55", "控制模式"),
    /**
     *
     */
    SET_L3("SET_L3", "550103X1X200AA55", "出向延时时间"),
    /**
     *
     */
    SET_L4("SET_L4", "550104X1X200AA55", "左边通行语音"),
    /**
     *
     */
    SET_L5("SET_L5", "550105X1X200AA55", "右边通行语音"),
    /**
     *
     */
    SET_L6("SET_L6", "550106X1X200AA55", "红外叠加时间（单位秒）"),
    /**
     *
     */
    SET_L7("SET_L7", "550107X1X200AA55", "断电开闸方向"),
    /**
     *
     */
    SET_L8("SET_L8", "550108X1X200AA55", "报警语音"),
    /**
     *
     */
    SET_L9("SET_L9", "550109X1X200AA55", "出入口记忆功能配置"),
    /**
     *
     */
    SET_L10("SET_L10", "55010AX1X200AA55", "红外防夹动作"),
    /**
     *
     */
    SET_L11("SET_L11", "55010BX1X200AA55", "红外数量"),
    /**
     *
     */
    SET_L12("SET_L12", "55010CX1X200AA55", "语音音量"),
    /**
     *
     */
    SET_L13("SET_L13", "55010DX1X200AA55", "语音测试"),
    /**
     *
     */
    SET_L14("SET_L14", "55010EX1X200AA55", "老化测试"),
    /**
     *
     */
    SET_L15("SET_L15", "55010FX1X200AA55", "主电机品牌选择：主板出现E-1改成1"),
    /**
     *
     */
    SET_L16("SET_L16", "550110X1X200AA55", "从电机品牌选择：主板出现E-:2改成1"),
    /**
     *
     */
    SET_L17("SET_L17", "550111X1X200AA55", "逆向关闸选择"),
    /**
     *
     */
    SET_L18("SET_L18", "550112X1X200AA55", "双色灯三色灯控制选择"),
    /**
     *
     */
    SET_L19("SET_L19", "550113X1X200AA55", "0代表：通道内可以刷卡开闸     1代表：通道内不能刷卡开闸"),
    /**
     *
     */
    SET_L20("SET_L20", "550114X1X200AA55", "翼闸红外关闸选项 0代表:翼闸过了防夹以后关闸   1代表：翼闸过了最后一对红外关闸"),
    /**
     *
     */
    SET_L21("SET_L21", "550115X1X200AA55", "红外防尾随是否开启 0：不开启  1：开启(人进入通道后，如果第一队入口红外又被遮挡则认为是尾随报警)"),
    /**
     *
     */
    SET_L22("SET_L22", "550116X1X200AA55", "尾随后是否关闸 0:尾随后只报警，不关闸 1：尾随后报警，接着关闸"),
    /**
     *
     */
    SET_D1("SET_D1", "550201X1X200AA55", "零位设置"),
    /**
     *
     */
    SET_D2("SET_D2", "550202X1X200AA55", "左开门位置设置"),
    /**
     *
     */
    SET_D3("SET_D3", "550203X1X200AA55", "右开门位置设置"),
    /**
     *
     */
    SET_D4("SET_D4", "550204X1X200AA55", "开关门速度设置"),
    /**
     *
     */
    SET_D5("SET_D5", "550205X1X200AA55", "闸机模式"),
    /**
     *
     */
    SET_D6("SET_D6", "550206X1X200AA55", "是否有离合器"),
    /**
     *
     */
    SET_D7("SET_D7", "550207X1X200AA55", "反弹模式"),
    /**
     *
     */
    SET_D8("SET_D8", "550208X1X200AA55", "对抗力度"),
    /**
     *
     */
    SET_D9("SET_D9", "550209X1X200AA55", "复位时间"),
    /**
     *
     */
    SET_D10("SET_D10", "55020AX1X200AA55", "主关门缓冲力度"),
    /**
     *
     */
    SET_D11("SET_D11", "55020BX1X200AA55", "主机电机转速"),
    /**
     *
     */
    SET_D12("SET_D12", "55020CX1X200AA55", "从关门缓冲力度"),
    /**
     *
     */
    SET_D13("SET_D13", "55020DX1X200AA55", "从机电机转速"),
    /**
     *
     */
    SET_D14("SET_D14", "55020EX1X200AA55", "电源功率"),
    /**
     *
     */
    SET_D15("SET_D15", "55020FX1X200AA55", "上电找零速度"),
    /**
     *
     */
    SET_D16("SET_D16", "550210X1X200AA55", "翼闸零位方向"),
    /**
     *
     */
    SET_D17("SET_D17", "550211X1X200AA55", "物理防夹灵敏度"),
    /**
     *
     */
    SET_D18("SET_D18", "550212X1X200AA55", "物理防夹电流时间"),
    /**
     *
     */
    SET_D19("SET_D19", "550213X1X200AA55", "加加速电流"),
    /**
     *
     */
    SET_D20("SET_D20", "550214X1X200AA55", "加加速电流时间"),
    /**
     *
     */
    SET_D21("SET_D21", "550215X1X200AA55", "离合吸合角度"),
    /**
     *
     */
    SET_D22("SET_D22", "550216X1X200AA55", "离合调节的占空比"),
    /**
     *
     */
    SET_D23("SET_D23", "550217X1X200AA55", "物理防夹反应时间"),
    /**
     *
     */
    SET_D24("SET_D24", "550218X1X200AA55", "堵转零敏度"),
    /**
     *
     */
    SET_D25("SET_D25", "550219X1X200AA55", "电流保护时长"),
    /**
     *
     */
    SET_D26("SET_D26", "55021AX1X200AA55", "从机对抗力度"),
    /**
     *
     */
    SET_D27("SET_D27", "55021BX1X200AA55", "减速行程");

    private String order;
    private String value;
    private String remarks;

    Gex2Enum(String order, String value, String remarks) {
        this.value = value;
        this.order = order;
        this.remarks = remarks;
    }

    /**
     * 根据value返回对应的枚举值
     *
     * @param order 指令
     * @return 枚举值
     */
    public static Gex2Enum orderOf(String order) {
        switch (order) {
            case "LEFT_OPEN":
                return LEFT_OPEN;
            case "RIGHT_OPEN":
                return RIGHT_OPEN;
            case "LEFT_NORMALLY_OPEN_OPEN_GATE":
                return LEFT_NORMALLY_OPEN_OPEN_GATE;
            case "LEFT_NORMALLY_OPEN_CLOSE_GATE":
                return LEFT_NORMALLY_OPEN_CLOSE_GATE;
            case "RIGHT_NORMALLY_OPEN_OPEN_GATE":
                return RIGHT_NORMALLY_OPEN_OPEN_GATE;
            case "RIGHT_NORMALLY_OPEN_CLOSE_GATE":
                return RIGHT_NORMALLY_OPEN_CLOSE_GATE;
            case "RIGHT_INFRARED_TRIGGER_SWITCH_ON":
                return RIGHT_INFRARED_TRIGGER_SWITCH_ON;
            case "CLOSE_THE_RIGHT_INFRARED_SWITCH":
                return CLOSE_THE_RIGHT_INFRARED_SWITCH;
            case "LEFT_INFRARED_TRIGGER_SWITCH_ON":
                return LEFT_INFRARED_TRIGGER_SWITCH_ON;
            case "CLOSE_THE_LEFT_INFRARED_SWITCH":
                return CLOSE_THE_LEFT_INFRARED_SWITCH;
            case "LEFT_PASSAGE":
                return LEFT_PASSAGE;
            case "RIGHT_PASSAGE":
                return RIGHT_PASSAGE;
            case "LEFT_PASSAGE_TIMEOUT":
                return LEFT_PASSAGE_TIMEOUT;
            case "RIGHT_PASSAGE_TIMEOUT":
                return RIGHT_PASSAGE_TIMEOUT;
            case "ENABLE_MOTOR":
                return ENABLE_MOTOR;
            case "DISABLE_MOTOR":
                return DISABLE_MOTOR;
            case "BRAKE_ON":
                return BRAKE_ON;
            case "BRAKE_OFF":
                return BRAKE_OFF;
            case "OPENING_STATUS":
                return OPENING_STATUS;
            case "INFRARED_STATUS":
                return INFRARED_STATUS;
            case "READ_L1":
                return READ_L1;
            case "READ_L2":
                return READ_L2;
            case "READ_L3":
                return READ_L3;
            case "READ_L4":
                return READ_L4;
            case "READ_L5":
                return READ_L5;
            case "READ_L6":
                return READ_L6;
            case "READ_L7":
                return READ_L7;
            case "READ_L8":
                return READ_L8;
            case "READ_L9":
                return READ_L9;
            case "READ_L10":
                return READ_L10;
            case "READ_L11":
                return READ_L11;
            case "READ_L12":
                return READ_L12;
            case "READ_L15":
                return READ_L15;
            case "READ_L16":
                return READ_L16;
            case "READ_L17":
                return READ_L17;
            case "READ_L18":
                return READ_L18;
            case "READ_L19":
                return READ_L19;
            case "READ_D4":
                return READ_D4;
            case "READ_D5":
                return READ_D5;
            case "READ_D6":
                return READ_D6;
            case "READ_D7":
                return READ_D7;
            case "READ_D8":
                return READ_D8;
            case "READ_D9":
                return READ_D9;
            case "READ_D10":
                return READ_D10;
            case "READ_D11":
                return READ_D11;
            case "READ_D12":
                return READ_D12;
            case "READ_D13":
                return READ_D13;
            case "READ_D14":
                return READ_D14;
            case "READ_D15":
                return READ_D15;
            case "READ_D16":
                return READ_D16;
            case "READ_D17":
                return READ_D17;
            case "READ_D18":
                return READ_D18;
            case "READ_D19":
                return READ_D19;
            case "READ_D20":
                return READ_D20;
            case "READ_D21":
                return READ_D21;
            case "READ_D22":
                return READ_D22;
            case "READ_D23":
                return READ_D23;
            case "READ_D24":
                return READ_D24;
            case "READ_D25":
                return READ_D25;
            case "READ_D26":
                return READ_D26;
            case "READ_D27":
                return READ_D27;
            case "CLOSED_IN_PLACE":
                return CLOSED_IN_PLACE;
            case "OPENING_A_IN_PLACE":
                return OPENING_A_IN_PLACE;
            case "OPENING_B_IN_PLACE":
                return OPENING_B_IN_PLACE;
            case "OPENING_PROCESS_IN_A":
                return OPENING_PROCESS_IN_A;
            case "OPENING_PROCESS_IN_B":
                return OPENING_PROCESS_IN_B;
            case "CLOSING_PROCESS_IN_A":
                return CLOSING_PROCESS_IN_A;
            case "CLOSING_PROCESS_IN_B":
                return CLOSING_PROCESS_IN_B;
            case "INITIALIZATION_IS_IN_PROGRESS":
                return INITIALIZATION_IS_IN_PROGRESS;
            case "SOMEONE_PUSHED_THE_DOOR":
                return SOMEONE_PUSHED_THE_DOOR;
            case "MOTOR_IS_ZEROING":
                return MOTOR_IS_ZEROING;
            case "INFRARED_NOT_WORK":
                return INFRARED_NOT_WORK;
            case "THROUGH_FIRST_POINT":
                return THROUGH_FIRST_POINT;
            case "THROUGH_SECOND_POINT":
                return THROUGH_SECOND_POINT;
            case "THROUGH_THIRD_POINT":
                return THROUGH_THIRD_POINT;
            case "SOMEONE_IS_RETROGRADE":
                return SOMEONE_IS_RETROGRADE;
            case "SOMEONE_IS_FOLLOWING":
                return SOMEONE_IS_FOLLOWING;
            case "INFRARED_OVER_TIME":
                return INFRARED_OVER_TIME;
            case "SOMEONE_BROKE_IN":
                return SOMEONE_BROKE_IN;
            case "THROUGH_NORMAL":
                return THROUGH_NORMAL;
            case "SET_L1":
                return SET_L1;
            case "SET_L2":
                return SET_L2;
            case "SET_L3":
                return SET_L3;
            case "SET_L4":
                return SET_L4;
            case "SET_L5":
                return SET_L5;
            case "SET_L6":
                return SET_L6;
            case "SET_L7":
                return SET_L7;
            case "SET_L8":
                return SET_L8;
            case "SET_L9":
                return SET_L9;
            case "SET_L10":
                return SET_L10;
            case "SET_L11":
                return SET_L11;
            case "SET_L12":
                return SET_L12;
            case "SET_L13":
                return SET_L13;
            case "SET_L14":
                return SET_L14;
            case "SET_L15":
                return SET_L15;
            case "SET_L16":
                return SET_L16;
            case "SET_L17":
                return SET_L17;
            case "SET_L18":
                return SET_L18;
            case "SET_L19":
                return SET_L19;
            case "SET_D1":
                return SET_D1;
            case "SET_D2":
                return SET_D2;
            case "SET_D3":
                return SET_D3;
            case "SET_D4":
                return SET_D4;
            case "SET_D5":
                return SET_D5;
            case "SET_D6":
                return SET_D6;
            case "SET_D7":
                return SET_D7;
            case "SET_D8":
                return SET_D8;
            case "SET_D9":
                return SET_D9;
            case "SET_D10":
                return SET_D10;
            case "SET_D11":
                return SET_D11;
            case "SET_D12":
                return SET_D12;
            case "SET_D13":
                return SET_D13;
            case "SET_D14":
                return SET_D14;
            case "SET_D15":
                return SET_D15;
            case "SET_D16":
                return SET_D16;
            case "SET_D17":
                return SET_D17;
            case "SET_D18":
                return SET_D18;
            case "SET_D19":
                return SET_D19;
            case "SET_D20":
                return SET_D20;
            case "SET_D21":
                return SET_D21;
            case "SET_D22":
                return SET_D22;
            case "SET_D23":
                return SET_D23;
            case "SET_D24":
                return SET_D24;
            case "SET_D25":
                return SET_D25;
            case "SET_D26":
                return SET_D26;
            case "SET_D27":
                return SET_D27;
            case "RESET_STATUS":
                return RESET_STATUS;
            default:
                return null;
        }
    }

    public static Gex2Enum getByValue(String value) {
        switch (value) {
            case "7E800001000080AA00010100DE627E":
                return LEFT_OPEN;
            case "7E800001000080AA000102008B317E":
                return RIGHT_OPEN;
            case "7E800001000080AA00010101CE437E":
                return LEFT_NORMALLY_OPEN_OPEN_GATE;
            case "7E800001000081AA0001018AAB7E":
                return LEFT_NORMALLY_OPEN_CLOSE_GATE;
            case "7E800001000080AA000102019B107E":
                return RIGHT_NORMALLY_OPEN_OPEN_GATE;
            case "7E800001000081AA000102BAC87E":
                return RIGHT_NORMALLY_OPEN_CLOSE_GATE;
            case "7E800001000080AA0001010395fC7E":
                return RIGHT_INFRARED_TRIGGER_SWITCH_ON;
            case "7E800001000080AA0001010495fC7E":
                return CLOSE_THE_RIGHT_INFRARED_SWITCH;
            case "7E800001000080AA0001020395fC7E":
                return LEFT_INFRARED_TRIGGER_SWITCH_ON;
            case "7E800001000080AA0001020495FC7E":
                return CLOSE_THE_LEFT_INFRARED_SWITCH;
            case "7E80000100006100000194387E":
                return LEFT_PASSAGE;
            case "7E80000100006200000148A37E":
                return RIGHT_PASSAGE;
            case "7E800001000063000001FCD57E":
                return LEFT_PASSAGE_TIMEOUT;
            case "7E80000100006400000184D17E":
                return RIGHT_PASSAGE_TIMEOUT;
            case "010600040000C80B":
                return ENABLE_MOTOR;
            case "01060004000109CB":
                return DISABLE_MOTOR;
            case "010600050001580B":
                return BRAKE_ON;
            case "01060005000099CB":
                return BRAKE_OFF;
            case "0103020000AA55":
                return CLOSED_IN_PLACE;
            case "0103020001AA55":
                return OPENING_A_IN_PLACE;
            case "0103020002AA55":
                return OPENING_B_IN_PLACE;
            case "0103020003AA55":
                return OPENING_PROCESS_IN_A;
            case "0103020004AA55":
                return OPENING_PROCESS_IN_B;
            case "0103020005AA55":
                return CLOSING_PROCESS_IN_A;
            case "0103020006AA55":
                return CLOSING_PROCESS_IN_B;
            case "0103020007AA55":
                return INITIALIZATION_IS_IN_PROGRESS;
            case "0103020008AA55":
                return SOMEONE_PUSHED_THE_DOOR;
            case "0103020009AA55":
                return MOTOR_IS_ZEROING;
            case "0103020000":
                return INFRARED_NOT_WORK;
            case "0103020001":
                return THROUGH_FIRST_POINT;
            case "0103020002":
                return THROUGH_SECOND_POINT;
            case "0103020003":
                return THROUGH_THIRD_POINT;
            case "0103020004":
                return SOMEONE_IS_RETROGRADE;
            case "0103020005":
                return SOMEONE_IS_FOLLOWING;
            case "0103020006":
                return INFRARED_OVER_TIME;
            case "0103020007":
                return SOMEONE_BROKE_IN;
            case "0103020008":
                return THROUGH_NORMAL;
            default:
                return null;
        }
    }

    public String getValue() {
        return value;
    }

    public String getOrder() {
        return order;
    }

    public String getRemarks() {
        return remarks;
    }
}
